package cn.ahaiahaixx.dp.singleton;

/**
 * 单词模式，对象独一无二，只能创建出来一个
 * 
 * @author Aiden Pearce
 *
 */
public class Singleton {
  /**
   * 第一步直接创建静态实例
   * 这种模式的单列实现有一个缺点就是不管使用与否实例都已经创建出来
   * 如果创建的过程比较长，或者资源消耗高，就比较浪费
   */
  private static Singleton singleton = new Singleton();

  /**
   * 第二步 私有化构造函数，避免其他类通过new创建
   */
  private Singleton() {
  }

  /**
   * 第三步，提供静态方法获取对象实例
   * 
   * @return
   */
  public static Singleton getInstance() {
    return singleton;
  }

  /**
   * 测试用的字段以及方法
   */
  private int count = 0;

  public void add() {
    count++;
  }

  public int getCount() {
    return count;
  }
}
